#pragma once

#include <QtGui/QWidget>

#include <QtCore/QString>
#include <QtCore/QList>

struct EffectVariableGuiControlType
{
	enum Enum
	{
		CheckBox = 0,
		Slider,
		RadioButtons,
	};
};

struct EffectVariableGuiControl
{
	EffectVariableGuiControlType::Enum type;
	QWidget* widget;
};

struct EffectVariableCheckBoxParams
{
	QString text;
	bool pressedByDefault;
};

struct EffectVariableRadioButtonsEntry
{
	QString text;
	bool isDefault;
};

struct EffectVariableRadioButtonsParams
{
	QString title;
	QList<EffectVariableRadioButtonsEntry> entries;
};

struct EffectVariableSliderParams
{
	QString title;
	int min;
	int max;
	int default;
};

struct EffectVariableGuiControlDefinition
{
	EffectVariableGuiControlType::Enum type;

	EffectVariableCheckBoxParams checkBox;
	EffectVariableRadioButtonsParams radioButtons;
	EffectVariableSliderParams slider;
};